C++ Design Pattern

Maybe Monad

E) if constexpr

std::variant & std::visit

Non-Circulating Visitors

Traditional Visitor Pattern

Dispatch

Reflective Print

Invasive Visitor

Game Simulation

Static Strategy

Dynamic Strategy

State machine with Boost.MSM

State machine with enum

State base State transition

Observer with Boost::Signals2

Reentrancy

Unsubscribe & MTSafe

Dependency Problem

Connection Between Observer & Observervable

Observable

Observer

Property Observer

Implied Null Object

Better Design

shared_ptr is not Null Object

Null Object

Scenario

Undo & Redo

Scenario

Mediator & Event

Chatting Room

Coroutine

Binary Search-iterator

STL Iterator

Parsing with Boost.Spirit

Lexing & Parsing

Interpreter Design Pattern

Command Query Separation, CQS

Composite Command

Undo

Command Design Pattern

Scenario

Broker Chain

Pointer Chain

Scenario

Communication Proxy

Virtual Proxy

Property Proxy

Smart Pointer

Implement Flyweight design pattern

Fault Access

String Range

Boost.Flyweight

Scenario

Façade

Advance Terminal

Terminal

Functional Decorator

Static Decorator

Dynamic Decorator

Scenario

Neural Network with Composite

Grouping for Graphic Object

Array Base Composite

Bridge

Pimpl

Temporary Adapter

Adapter

Scenario

Structural Patterns

Monostate

Singleton & Inversion of Control

E) Unit Test

Problem of Singleton

Multithread-Safe, MT-Safe

Traditional Singleton Pattern

Global Object Singleton

Prototype Factory

Serialization

Copy Constructor

Simple Copy

Generate Object

Functional Factory

Abstract Factory

Inner Factory

Factory(class)

Factory Method

Scenario

Composite Builder

Groovy-Style Builder

Indicate Intentions

Fluent Interface Builder

Simple Builder

Scenario

SOLID Principle

attribute

Mixin hertitance

CRTP